#include <stdio.h>
#include <inttypes.h>
#include <unistd.h>


// 在windows安装一个虚拟机：Vmware
// 在虚拟机安装Ubuntu系统(内核linux)
// 练习基础命令：
// ls,ls –l,cd ../ ./ /,pwd,ifconfig,mkdir,touch,cat,cp,rm,chmod,sudo apt install vim, vi,grep
// https://blog.csdn.net/weixin_44579687/article/details/124905333
// 就在目录/home/usr/里面做事情。我这里安装了ubuntu后，用户目录是：/home/lxin/。尽量避免用sudo和直接使用root用户。
// ubuntu安装VSCODE(优秀的代码阅读器)：sudo apt install code


// 编写第一个程序：
// https://blog.csdn.net/loveyelong/article/details/124504459


//在linux环境，c语言用gcc/g++来编译，如
//x86_64-linux-gnu-g++ -o l0000-helloWorld l0000-helloWorld.cpp  -Wall -I./  -pthread -O3
//如果gcc不存在，说明gcc没有安装：
//sudo apt-get install gcc

//一个程序只有一个main函数作为程序初始入口。
//在进入main之前会先初始化全局变量。
//printf系统函数在stdio.h头文件中声明。因此需要#include <stdio.h>
//int main(void)也是可以的
int main(int argc, char **argv)
{
    //printf打印到终端，一些常用用法。%d：整数；%ld：长整形；%u:无符号整形；%lu：无符号长整型；%X：16进制输出；%04x：16进制-不满4字节前面补0；
    //%.3lf：3个小数位的双精度浮点数；%s：字符串；\t：输出制表符(键盘的Tab键)；\r\n：回车换行(在linux环境下，\n就能换行，特殊情况下需要\r\n才能)
    printf("hello world!\n");
    for(int i = 0; i < argc; i++)
    {
        printf("args:num=%d;data=%s\n", i, argv[i]);
    }
    printf("%d\n", -1);
    printf("%u\n", -1);
    printf("%X\n", -1);
    printf("%10s\n", "abc");
    printf("%-10s\n", "abc");
    printf("%f\n", 1.1);
    printf("%.3f\n", 1.1);

    char tmpbuffer[128];
    printf("please input you str:\n");
    scanf("%s", tmpbuffer);
    printf("you input:%s\n", tmpbuffer);

    printf("not print direct");
    sleep(10);
    return 1;
}

//输出：
// lxin@lxin-virtual-machine:~/workdir/lxsvn/embedsvndir/surpassdir/embedLxinv2/src/usrc/ctest$ ./l0000-helloWorld 
// hello world!
// args:num=0;data=./l0000-helloWorld
// lxin@lxin-virtual-machine:~/workdir/lxsvn/embedsvndir/surpassdir/embedLxinv2/src/usrc/ctest$ ./l0000-helloWorld 123
// hello world!
// args:num=0;data=./l0000-helloWorld
// args:num=1;data=123
// lxin@lxin-virtual-machine:~/workdir/lxsvn/embedsvndir/surpassdir/embedLxinv2/src/usrc/ctest$ ./l0000-helloWorld 123 456
// hello world!
// args:num=0;data=./l0000-helloWorld
// args:num=1;data=123
// args:num=2;data=456
